উদাহরণ সহ Named Queries পরিচালনা

Java Technologies - স্প্রিং ওআরএম (Spring ORM) Spring ORM এবং Named Queries |
72
72

Named Queries এর ধারণা

Named Queries হলো পূর্বনির্ধারিত (predefined) SQL বা JPQL (Java Persistence Query Language) স্টেটমেন্ট যা JPA বা Hibernate-এর মাধ্যমে ব্যবহৃত হয়। এগুলো সাধারণত Entity Class-এ সংজ্ঞায়িত থাকে এবং পুনরাবৃত্তিক কোড এড়াতে সাহায্য করে।

Named Queries ব্যবহার করলে অ্যাপ্লিকেশন কোড থেকে কোয়ারি আলাদা থাকে, যা কোডের রিডেবিলিটি এবং রিইউজেবিলিটি বৃদ্ধি করে।


Named Queries সংজ্ঞায়ন

Named Queries সাধারণত @NamedQuery অথবা @NamedQueries এনোটেশন ব্যবহার করে সংজ্ঞায়িত করা হয় এবং এটি Entity ক্লাসের উপর নির্দিষ্ট থাকে।

@NamedQuery এর উদাহরণ

@Entity
@NamedQuery(
    name = "User.findByUsername",
    query = "SELECT u FROM User u WHERE u.username = :username"
)
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;
    private String email;

    // Getters and Setters
}

@NamedQueries এর উদাহরণ

@Entity
@NamedQueries({
    @NamedQuery(
        name = "User.findAll",
        query = "SELECT u FROM User u"
    ),
    @NamedQuery(
        name = "User.findByEmail",
        query = "SELECT u FROM User u WHERE u.email = :email"
    )
})
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;
    private String email;

    // Getters and Setters
}

Spring ORM এ Named Queries ব্যবহারের ধাপ

১. Named Query প্রস্তুত করা

Entity ক্লাসে Named Query সংজ্ঞায়িত করতে হবে (উপরের উদাহরণ অনুসরণ করে)।

২. Named Query কল করা

EntityManager বা Spring Data JPA ব্যবহার করে Named Query কল করা যায়।


উদাহরণ: EntityManager ব্যবহার করে Named Query

@Service
public class UserService {

    @Autowired
    private EntityManager entityManager;

    public User findByUsername(String username) {
        return entityManager.createNamedQuery("User.findByUsername", User.class)
                            .setParameter("username", username)
                            .getSingleResult();
    }
}

উদাহরণ: Spring Data JPA ব্যবহার করে Named Query

Spring Data JPA স্বয়ংক্রিয়ভাবে Named Query সনাক্ত করতে পারে যদি রেপোজিটরি মেথডের নাম Named Query এর নামের সঙ্গে মিলে যায়।

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String username);
}

Named Query এর সুবিধা

  1. কোড পুনরাবৃত্তি হ্রাস: Named Queries পুনরায় ব্যবহার করা যায়।
  2. অপ্টিমাইজড কোড: কোয়ারি স্ট্রিং কোডে রাখার পরিবর্তে, এগুলো আলাদা করে সংরক্ষণ করা যায়।
  3. রানটাইম ত্রুটি হ্রাস: Named Query কম্পাইল টাইমেই যাচাই করা হয়।
  4. বৃহৎ প্রজেক্টে কার্যকর: বড় অ্যাপ্লিকেশন বা বহু টেবিলের ডেটা নিয়ে কাজ করার সময় এটি খুবই উপকারী।

Named Query এর সীমাবদ্ধতা

  • Named Queries সাধারণত স্ট্যাটিক; ডাইনামিক কোয়ারি তৈরির ক্ষেত্রে সীমাবদ্ধ।
  • বড় এবং জটিল কোয়ারির ক্ষেত্রে কোডে এনোটেশন লিখা কিছুটা অগোছালো হতে পারে।

Named Query এবং স্প্রিং ওআরএম এর সংযুক্তি

স্প্রিং ORM Named Queries সহজভাবে ব্যবহার করার জন্য প্রয়োজনীয় EntityManager এবং Spring Data JPA ইন্টিগ্রেশন প্রদান করে। এটি ডেভেলপারদের জন্য কোড পরিষ্কার এবং রিইউজেবল রাখতে সহায়তা করে।


Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion